package com.xfusion.chatglm.data.config;

import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;

import com.google.common.eventbus.EventBus;
import com.xfusion.chatglm.data.trigger.mq.OrderPaySuccessListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.concurrent.TimeUnit;

/**
 * @description
 */
@Configuration
public class GoogleGuavaCodeCacheConfig {

    /**
     * 创建缓存对象，键值对类型为string和string缓存过期时间为3分钟
     * @return
     */
    @Bean(name = "Cache")//使用@Bean注解将返回的缓存对象注册为Spring容器的Bean，其他地方可以通过注入的方式使用这些缓存对象
    public Cache<String, String> Cache() {
        return CacheBuilder.newBuilder()
                .expireAfterWrite(3, TimeUnit.MINUTES)
                .build();
    }

    /**
     * 创建缓存对象，其键值对类型为string和integer，缓存过期时间为12小时
     * @return
     */
    @Bean(name = "visitCache")
    public Cache<String, Integer> visitCache() {
        return CacheBuilder.newBuilder()
                .expireAfterWrite(12, TimeUnit.HOURS)
                .build();
    }

}
